1. Field of the Invention
The present invention relates to an information processing apparatus for executing an application to perform data processing, a control method for the information processing apparatus, and a storage medium.
2. Description of the Related Art
An increase in the size of software, which configures the system of a data processing apparatus, leads to a tendency to increase the time from the moment the user turns on the power switch to the moment the system is started (system startup time). As one of the solutions to such increase in the startup time, the hibernation technology is used.
Hibernation refers to the technology that is implemented as follows. The information, stored in a volatile storage device (memory) of the system at an arbitrary time, is saved to a nonvolatile storage device, such as a hard disk drive (HDD), a solid state drive (SSD), and a universal serial bus (USB) memory. Next time, when the system is started, the saved information is written back to the volatile storage device to restore the system state to the “state at the time of save”.
The information, which is used when the system state is shifted to the “state at the time of save”, in the memory may include confidential information such as a password. If hibernation is not used, the information is erased when the power of the apparatus is turned off and, therefore, it is very difficult for a third party to acquire the information.
However, when hibernation is used, the information is stored in the nonvolatile storage device. This means that, when the nonvolatile storage device is a removable device such as an HDD, the confidential information is more likely to be acquired by a third party.
To address the problem, Japanese Patent Application Laid-Open No. 2008-204459 discusses a technology that provides a data encryption processing unit and a data decryption processing unit within a system-on-chip (SoC) in a data processing apparatus. The data encryption processing unit encrypts the state of a processing circuit when a hibernation signal is received from an external source, and the decryption processing unit decrypts the encrypted state when the wake signal is received, to protect confidential information.
Another solution is an encryption method, conforming to Linux (registered trademark) Unified Key Setup (LUKS), in which a file system in a nonvolatile storage device is stored as an encrypted file system. When data is stored into the nonvolatile storage device, this encryption method encrypts all of the information in the memory via software.
Hardware-based encryption, such as the SoC described above, requires addition of the encryption mechanism to the internal of the SoC of the information processing apparatus, involving an additional cost.
Software-based encryption such as LUKS performs processing for the entire memory of the data processing apparatus. The additional processing time for encryption and decryption is less likely to contribute to a reduction in the startup time required for the information processing apparatus.
On the other hand, when considering the memory that is to be encrypted, a general-purpose information processing apparatus (personal computer (PC)), in which various applications operate and store data in the memory, cannot identify an area that need not be encrypted. As a result, the information processing apparatus must encrypt the entire memory of the information processing apparatus, thus making it impossible to reduce the encryption processing time.
Since the entire memory of the information processing apparatus is to be encrypted, there is also a problem that, unless an appropriate encryption algorithm is used, the encryption algorithm can be identified from encrypted data patterns.